package com.munhrasoft.webloja.views;

import java.io.InputStream;
import java.io.Serializable;
import java.sql.Blob;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Logger;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.rowset.serial.SerialBlob;
import javax.sql.rowset.serial.SerialException;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

import com.munhrasoft.webloja.beans.AplicacaoBean;
import com.munhrasoft.webloja.beans.ProdutosBean;
import com.munhrasoft.webloja.modelo.Produtos;
import com.munhrasoft.webloja.modelo.Vendedores;

@ManagedBean
@RequestScoped
public class LoginVendViewBean implements Serializable{


	/**
	 * 
	 */
	private static final long serialVersionUID = -2152682927323400330L;
	private static Logger logger = Logger.getLogger(LoginVendViewBean.class.getName());

	private List<Produtos> listaProdutos;
	private ProdutosBean produtoBean;

	public LoginVendViewBean(){
		Vendedores vendedor;

		InitialContext initContext;
		try {
			initContext = new InitialContext();
			AplicacaoBean appBean = (AplicacaoBean) 
			initContext.lookup("java:global/webloja/AplicacaoBean");
			vendedor = appBean.getVendedorLogado();			
			produtoBean = (ProdutosBean)
			initContext.lookup("java:global/webloja/ProdutosBean");
			logger.info("Contrutor valor do vendedorId "+vendedor.getVendedorId());
			
			if (vendedor != null){
				if (vendedor.getVendedorId() > 0){
					listaProdutos = produtoBean.listarTodosPorVendedor(vendedor.getVendedorId());
				}
			}
			
			
			

		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}


	public StreamedContent pegaImagemDoProduto(){

		byte[] bytesDaImagem = null;
		Blob imagemBlog = null;
		InputStream stream = null;
		StreamedContent imagemProduto = null;
		String produtoId = "1";
		String Id = null;

		Id = FacesContext.getCurrentInstance().getExternalContext().
		getRequestParameterMap().get("pid");


		//Id = FacesContext.getCurrentInstance().getExternalContext()




		logger.info("Retornando a imagem !");
		logger.info("Id do produto "+produtoId);
		logger.info("String id fparam "+Id);

		if (Id !=null)
			produtoId = Id;


		bytesDaImagem = produtoBean.load(new Integer(produtoId)).getFoto();


		try {
			imagemBlog = new SerialBlob(bytesDaImagem);
			stream = imagemBlog.getBinaryStream();
			imagemProduto = 
				new DefaultStreamedContent(stream,"imagem/jpg");
		} catch (SerialException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		logger.info("Retornando a imagem !");

		return imagemProduto;



	}

	public List<Produtos> getListaProdutos() {
		return listaProdutos;
	}

	public void setListaProdutos(List<Produtos> listaProdutos) {
		this.listaProdutos = listaProdutos;
	}




}
